/*
题目描述：包含一个含有min函数的栈
方法：增加一个辅助栈，使得栈顶元素始终为当前栈中的最小值
 */
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Stack;

public class E30 {
    Stack<Integer> stack = new Stack<>();
    Queue<Integer> sortedStack = new PriorityQueue<>();
    public void push(int node) {
        stack.push(node);
        sortedStack.add(node);
    }

    public void pop() {
        int temp = stack.pop();
        sortedStack.remove(temp);
    }

    public int top() {
        return stack.peek();
    }
    public int min() {
        return sortedStack.peek();
    }
}
